package ThreadingSafety;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 *  Java标准库的线程池.
 */
public class TestDemo24 {
    public static void main(String[] args) {
        ExecutorService pool = Executors.newCachedThreadPool();
        // 注意: 1. Executors 是在 java.util.concurrent.Executors 下的
        //      2. 这里创建线程池,并没有显示new, 而是通过Executors的静态方法newCachedThreadPool来完成的
        //      这种模式就叫做 工厂模式(与之前的 单例模式一样,是一种设计模式.), newCachedThreadPool 就叫 工厂方法.
        //      工厂模式是为了绕开 构造方法的局限性. (9/19 下午 02:48:10处) --> 具体例子见 TestDemo24Child.

        pool.submit(new Runnable() {
            // submit 是添加任务的方法, 只有一个参数, 也就是 Runnable.
            @Override
            public void run() {
                System.out.println("这是一个任务.");
            }
        });

        pool.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println("任务2");
            }
        });
    }
}
// 在 TestDemo25 中将手动实现 线程池.